package com.authine.cloudpivot.ext.dto.kingDee.request;

import com.authine.cloudpivot.ext.enums.kingdee.KingDeeInvoiceApplyTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "收票模型")
public class KingDeeReceiveInvoice implements Serializable {

    private static final long serialVersionUID = -7130073136820129570L;
    /**
     * id
     */
    @Schema(description = "id")
    private String id;
    /**
     * 供应商名称
     */
    @Schema(description = "供应商名称")
    private String confirmOrganizationCompanyName;
    /**
     * 供应商ID
     */
    @Schema(description = "供应商ID")
    private String confirmOrganizationId;
    /**
     * 不含税金额--不含增补
     */
    @Schema(description = "不含税金额--不含增补")
    private BigDecimal pretaxAmount;
    /**
     * 包含增补的 不含税金额
     */
    @Schema(description = "包含增补的 不含税金额")
    private BigDecimal pretaxAmounts;
    /**
     * 价税
     */
    @Schema(description = "价税")
    private BigDecimal amount;
    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private Date confirmTime;
    /**
     * 发票号
     */
    @Schema(description = "发票号")
    private String number;
    /**
     * 税率
     */
    @Schema(description = "税率")
    private BigDecimal taxRate;
    /**
     * 发票类型
     */
    @Schema(description = "发票类型")
    private KingDeeInvoiceApplyTypeEnum type;
    /**
     * 税额发票集合
     */
    @Schema(description = "税额发票集合")
    private List<KingDeeInvoiceRecord> invoiceRecordList;
    /**
     * 供应商订单ID
     */
    @Schema(description = "供应商订单ID")
    private String vendorOrderId;
    /**
     * 增补金额
     */
    @Schema(description = "增补金额")
    private BigDecimal suppleAmount;
    /**
     * 附件数
     */
    @Schema(description = "附件数")
    private Integer attachments;
    /**
     * 账套名
     */
    @Schema(description = "账套名")
    private String accountName;
}
